#pragma once
#ifndef RUNLEN_H
#define RUNLEN_H
#include<opencv2/opencv.hpp>
#include<vector>
#include<iostream>
#include"vectorclass.h"

// 不能用CV的命名空间，会和vectorclass.h里面的函数冲突

struct runLenInf {
	int stRow;    // 起始行
	int stCol;    // 起始列
	int enCol;	  // 终止列
};

/**
* @brief 	使用SIMD并行加速的 基于游程的二值图像连通域标记算法
* @param	_binImg 二值图像
* @param	_lableImg 标记了连通域的二值图像
* @param	offset 连通域偏移量
* @param	regionInf 存放每个区域的游程信息
* @return	连通域数量
*/
int runLen(cv::Mat& _binImg, cv::Mat& _lableImg, int offset,
	std::vector<std::vector<runLenInf>>& regionInf);

#endif // !RUNLEN_H